// pages/my/signManage/addFile/addFile.js
var util = require('../../../../utils/util.js');
var app = getApp();

Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: '', // 登录用户信息
    // createModeArray: [{
    //   'key': '上传本地文件创建',
    //   'value': '0'
    // }, {
    //   'key': '根据合同模板创建',
    //   'value': '1'
    // }],
    createModeArray: [{
      'key': '根据合同模板创建',
      'value': '1'
    }],
    authArray: [], // 发起方认证信息
    apaArray: [], // 房东公寓集合
    roomArray: [], // 房东房源信息
    fileTypeArray: [], // 合同类型
    fileMouldArray: [], // 合同模板
    mouldFormArray: [], // 合同模板表单填充域
    file_title: '', // 合同标题
    auth_id: '', // 发起方认证id
    auth_name: '请选择', // 发起方名称
    mode_type: '1', // 创建方式
    mode_name: '根据合同模板创建', // 创建方式名称
    apartment_name: '请选择', // 公寓名称
    room_id: '', // 房间id
    room_code: '请选择', // 房间名
    file_type_id: '', // 合同类型
    file_type_name: '请选择', // 合同类型名称
    file: '', //合同文件
    file_name: '请选择', // 文件名称
    file_size: '', // 文件大小
    mould_id: '', // 模板id
    mould_name: '请选择', // 模板名称
    emould_id: '', // e签宝模板id
    disabledBtn: false, // 提交按钮状态
    signHidden: true, // 创建成功弹框状态
    file_id: 0, // 创建成功后返回的合同编号
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    var that = this;
    wx.getStorage({
      key: 'userInfo',
      success: function(res) {
        var data = res.data;
        that.setData({
          userInfo: data
        });
        that.dataLoad();
      },
      fail: function() {
        wx.redirectTo({
          url: '/pages/index/index',
        })
      }
    });
  },

  /**
   * 初始化数据
   */
  dataLoad: function() {
    wx.showLoading({
      title: '加载中···',
    });
    var that = this;
    var userInfo = that.data.userInfo;
    util.getReq('/app/sign/createFileInitData', {}, function(data) {
      if (data.code == 0) {
        var params = data.params;
        var apaList = params.apaList;
        apaList.splice(0, 0, {
          'apartment_id': '0',
          'apartment_name': '请选择'
        });
        that.setData({
          authArray: params.authList, // 发起方认证信息
          apaArray: apaList, // 房东公寓集合信息
          fileTypeArray: params.typeList, // 合同类型
          fileMouldArray: params.mouldList, // 合同模板
        });
      } else {
        util.isError(data.desc);
      }
      wx.hideLoading();
    });
  },

  /**
   * 合同标题输入
   */
  file_title: function(e) {
    this.setData({
      file_title: e.detail.value
    });
  },

  /**
   * 发起方选择
   */
  bindAuthChange: function(e) {
    var that = this;
    var data = that.data.authArray[e.detail.value];
    that.setData({
      auth_id: data.auth_id,
      auth_name: data.auth_name
    });
  },

  /**
   * 创建方式选择
   */
  bindCreateModeChange: function(e) {
    var that = this;
    var data = that.data.createModeArray[e.detail.value];
    that.setData({
      mode_type: data.value,
      mode_name: data.key
    });
  },

  /**
   * 公寓选择
   */
  bindApaChange: function(e) {
    var that = this;
    var data = that.data.apaArray[e.detail.value];
    that.setData({
      apartment_name: data.apartment_name
    });
    util.getReq('/app/sign/getApartmentRoom', {
      apartment_id: data.apartment_id
    }, function(data) {
      if (data.code == 0) {
        that.setData({
          roomArray: data.data,
          room_id: '',
          room_code: '请选择'
        });
      } else {
        util.isError(data.desc);
      }
    });
  },

  /**
   * 房间选择
   */
  bindRoomChange: function(e) {
    var that = this;
    var data = that.data.roomArray[e.detail.value];
    that.setData({
      room_id: data.room_id,
      room_code: data.room_code
    });
  },

  /**
   * 合同类型选择
   */
  bindFileTypeChange: function(e) {
    var that = this;
    var data = that.data.fileTypeArray[e.detail.value];
    that.setData({
      file_type_id: data.file_type_id,
      file_type_name: data.file_type_name
    });
  },

  /**
   * 合同模板选择
   */
  bindFileMouldChange: function(e) {
    var that = this;
    var data = that.data.fileMouldArray[e.detail.value];
    var mould_id = data.mould_id;
    that.setData({
      mould_id: mould_id,
      mould_name: data.mould_name
    });
    that.onMouldForm();
  },

  /**
   * 加载模板表单域
   */
  onMouldForm: function() {
    var that = this;
    var mould_id = that.data.mould_id;
    util.getReq('/app/sign/getMouldFormData', {
      mould_id: mould_id
    }, function(data) {
      console.log(data);
      if (data.code == 0) {
        var params = data.params;
        var list = params.list;
        var mould = params.mould;
        that.setData({
          mould: mould,
          emould_id: mould.emould_id,
          file_type_id: mould.file_type_id,
          mouldFormArray: list
        });
        for (var i = 0; i < list.length; ++i) {
          (function(item) {
            var form_name = item.form_name;
            that.setData({
              [form_name]: ''
            });
            that[item.form_name] = function(e) {
              that.setData({
                [form_name]: e.detail.value
              });
            }
          })(list[i]);
        }
      }
    });
  },

  /**
   * 提交
   */
  submit: function() {
    var that = this;
    if (!that.submitCheck()) {
      return;
    }
    that.setData({
      disabledBtn: true
    });
    wx.showLoading({
      title: '创建中···',
    })
    var d = that.data;
    var data = {};
    var list = that.data.mouldFormArray;
    for (var i = 0; i < list.length; i++) {
      var form_name = list[i]['form_name'];
      data[form_name] = that.data[form_name];
    }
    data.file_title = d.file_title;
    data.auth_id = d.auth_id;
    data.room_id = d.room_id;
    data.file_type_id = d.file_type_id;
    data.mode = d.mode_type;
    data.mould_id = d.mould_id;
    data.emould_id = d.emould_id;
    util.getReq('/app/sign/createSignFile', data, function(data) {
      if (data.code == 0) {
        wx.showToast({
          title: '创建成功'
        });
        that.setData({
          file_id: data.params.file_id,
          signHidden: false
        });
      } else {
        util.isError(data.desc);
        wx.hideLoading();
      }
      that.setData({
        disabledBtn: false
      });
    });
  },

  /**
   * 提交参数校验
   */
  submitCheck: function() {
    var that = this;
    var data = that.data;
    if (!data.file_title) {
      util.isError('请输入合同标题');
      return false;
    }
    if (!data.auth_id) {
      util.isError('请选择发起方');
      return false;
    }
    if (data.mode_type == '-1') {
      util.isError('请选择创建方式');
      return false;
    }
    if (!data.file_type_id && data.mode_type == '0') {
      util.isError('请选择合同类型');
      return false;
    }
    if (!data.mould_id && data.mode_type == '1') {
      util.isError('请选择合同模板');
      return false;
    }
    return true;
  },

  /**
   * 弹框确认
   */
  onConfirm: function() {
    var that = this;
    that.setData({
      signHidden: true
    });
    wx.navigateTo({
      url: '/pages/my/electronSign/fileManage/startSign?id=' + that.data.file_id,
    })
  },

  /**
   * 弹框取消
   */
  onCancel: function() {
    var that = this;
    that.setData({
      signHidden: true
    });
  },

  /**
   * 合同预览
   */
  openFile: function(e) {
    var src = e.target.dataset.src;
    wx.navigateTo({
      url: '/pages/my/electronSign/previewPdf?pdfUrl=' + encodeURIComponent(src)
    })
  },

  /**
   * 选择合同文件
   */
  chooseFile: function() {
    wx.chooseInvoiceTitle({

    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {
    this.dataLoad();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})